package top.wu2020.lazy.ws.chat.infrastructure.entity;

import lombok.Data;
import lombok.experimental.Accessors;
import org.wu.framework.lazy.orm.core.stereotype.LazyTableIndex;
import org.wu.framework.core.stereotype.LayerField;
import org.wu.framework.core.stereotype.LayerField.LayerFieldType;
import org.wu.framework.lazy.orm.core.stereotype.LazyTable;
import org.wu.framework.lazy.orm.core.stereotype.LazyTableField;
import org.wu.framework.lazy.orm.core.stereotype.*;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import java.lang.String;
import org.wu.framework.lazy.orm.core.stereotype.LazyTableFieldId;
import java.lang.Long;
import java.lang.Boolean;
import java.lang.Integer;
/**
 * describe user 
 *
 * @author Jia wei Wu
 * @date 2024/05/24 08:52 晚上
 * @see org.wu.framework.lazy.orm.core.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructureEntity 
 **/
@Data
@Accessors(chain = true)
@LazyTable(tableName = "user",schema = "ws_chat",comment = "")
@Schema(title = "user",description = "")
public class UserDO {


    /**
     * 
     * 头像
     */
    @Schema(description ="头像",name ="avatar",example = "")
    @LazyTableField(name="avatar",comment="头像",columnType="varchar(500)")
    private String avatar;

    /**
     * 
     * 邮箱
     */
    @Schema(description ="邮箱",name ="email",example = "")
    @LazyTableField(name="email",comment="邮箱",notNull=true,columnType="varchar(255)")
    private String email;

    /**
     * 
     * 历史会话列表
     */
    @Schema(description ="历史会话列表",name ="historySessionList",example = "")
    @LazyTableField(name="history_session_list",comment="历史会话列表",columnType="longtext")
    private String historySessionList;

    /**
     * 
     * Id，自增
     */
    @Schema(description ="Id，自增",name ="id",example = "")
    @LazyTableFieldId(name = "id", comment = "Id，自增")
    private Long id;

    /**
     * 
     * 手机号
     */
    @Schema(description ="手机号",name ="mobile",example = "")
    @LazyTableField(name="mobile",comment="手机号",columnType="varchar(255)")
    private String mobile;

    /**
     * 
     * 用户名
     */
    @Schema(description ="用户名",name ="name",example = "")
    @LazyTableField(name="name",comment="用户名",columnType="varchar(255)")
    private String name;

    /**
     * 
     * 昵称
     */
    @Schema(description ="昵称",name ="nickName",example = "")
    @LazyTableField(name="nick_name",comment="昵称",notNull=true,columnType="varchar(255)")
    private String nickName;

    /**
     * 
     * 时间戳
     */
    @Schema(description ="时间戳",name ="noCode",example = "")
    @LazyTableField(name="no_code",comment="时间戳",columnType="varchar(255)")
    private String noCode;

    /**
     * 
     * 在线状态
     */
    @Schema(description ="在线状态",name ="onlineState",example = "")
    @LazyTableField(name="online_state",comment="在线状态",columnType="tinyint")
    private Boolean onlineState;

    /**
     * 
     * socket.id
     */
    @Schema(description ="socket.id",name ="outTradeNo",example = "")
    @LazyTableField(name="out_trade_no",comment="socket.id",columnType="varchar(255)")
    private String outTradeNo;

    /**
     * 
     * 密码
     */
    @Schema(description ="密码",name ="password",example = "")
    @LazyTableField(name="password",comment="密码",columnType="varchar(255)")
    private String password;

    /**
     * 
     * 个性签名
     */
    @Schema(description ="个性签名",name ="personalitySign",example = "")
    @LazyTableField(name="personality_sign",comment="个性签名",columnType="varchar(255)")
    private String personalitySign;

    /**
     * 
     * 地区
     */
    @Schema(description ="地区",name ="region",example = "")
    @LazyTableField(name="region",comment="地区",columnType="varchar(255)")
    private String region;

    /**
     * 
     * 右边距，仅需要该字段用于移动端
     */
    @Schema(description ="右边距，仅需要该字段用于移动端",name ="rightPadding",example = "")
    @LazyTableField(name="right_padding",comment="右边距，仅需要该字段用于移动端",notNull=true,defaultValue="'0'",upsertStrategy = LazyFieldStrategy.NEVER,columnType="int")
    private Integer rightPadding;

}